#include <stdio.h>
#define SIZE 100

void swap(int *a,int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

void keep_heap(int *arr,int n,int j)
{
	if(j * 2 + 1 >= n) 
	{
		return ;
	}
	if(arr[j] < arr[j * 2 + 1])
	{
		swap(&arr[j], &arr[j * 2 + 1]);
		keep_heap(arr, n, j * 2 + 1);
	}
	if(j * 2 + 2 >= n)
	{
		return ;
	}
	if(arr[j] < arr[j * 2 + 2])
	{
		swap(&arr[j], &arr[j * 2 + 2]);
		keep_heap(arr, n, j * 2 + 2);
	}
}

void heap_sort(int *arr,int n)
{
	int i,j,temp;
	for(i = (n - 1) / 2;i >= 0;i--)
	{
		keep_heap(arr, n, i);
	}
	for(i = 1;i < n;i++)
	{
		swap(&arr[0], &arr[n - i]);
		keep_heap(arr, n - i, 0);
	}
}

int main()
{
	int i,arr[SIZE];
	for(i = 0;i < SIZE;i++)
	{
		scanf("%d",&arr[i]);
	}
	heap_sort(arr,SIZE);
	for(i = 0;i < SIZE;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	return 0;
}
